/* Copyright (C) 2019-2023 Julian Valentin, LTeX Development Community
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */

package org.bsplines.ltexls.parsing.latex

import org.bsplines.ltexls.parsing.DummyGenerator

@Suppress("LargeClass")
object LatexAnnotatedTextBuilderDefaults {
  val DEFAULT_LATEX_COMMAND_SIGNATURES: List<LatexCommandSignature> = run {
    val list: MutableList<LatexCommandSignature> = mutableListOf(
      LatexCommandSignature("\\@addtoreset{}{}"),
      LatexCommandSignature("\\@ifpackageloaded{}"),
      LatexCommandSignature("\\@setplength{}{}"),
      LatexCommandSignature("\\Ac{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Ac[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Ac*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Ac*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Aca{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Aca[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Aca*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Aca*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acap{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acap[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acap*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acap*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acf{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acf[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acf*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acf*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acfp{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acfp[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acfp*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acfp*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acl{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acl[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acl*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acl*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Aclp{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Aclp[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Aclp*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Aclp*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acp{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acp[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acp*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acp*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acs{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acs[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acs*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acs*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acsp{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acsp[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acsp*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Acsp*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\AtBeginEnvironment{}{}"),
      LatexCommandSignature("\\AtEndEnvironment{}{}"),
      LatexCommandSignature("\\Autocite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Autocite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Autocite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Autocite*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Autocite*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Autocite*[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature(
        "\\Autocites{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Autocites{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Autocites{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Autocites{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Autocites()()[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Autocites{}{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Autocites()()[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Autocites()()[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Autocites()()[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Autocites()()[][]{}[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature("\\Cite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Cite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Cite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Citeauthor{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Citeauthor[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Citeauthor[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Citeauthor*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Citeauthor*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Citeauthor*[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature(
        "\\Cites{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Cites{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Cites{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Cites{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Cites()()[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Cites{}{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Cites()()[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Cites()()[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Cites()()[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Cites()()[][]{}[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature("\\ConTeXt", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Cref{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Crefname{}{}{}"),
      LatexCommandSignature("\\DeclareAcronym{}{}"),
      LatexCommandSignature("\\DeclareCaptionFormat{}{}"),
      LatexCommandSignature("\\DeclareCaptionLabelFormat{}{}"),
      LatexCommandSignature("\\DeclareCiteCommand{}{}{}{}{}"),
      LatexCommandSignature("\\DeclareCiteCommand{}[]{}{}{}{}"),
      LatexCommandSignature("\\DeclareFieldFormat{}{}"),
      LatexCommandSignature("\\DeclareFieldFormat[]{}{}"),
      LatexCommandSignature("\\DeclareFieldFormat*{}{}"),
      LatexCommandSignature("\\DeclareGraphicsExtensions{}"),
      LatexCommandSignature("\\DeclareMathAlphabet{}{}{}{}{}"),
      LatexCommandSignature("\\DeclareMathOperator{}{}"),
      LatexCommandSignature("\\DeclareMathOperator*{}{}"),
      LatexCommandSignature("\\DeclareNameAlias{}{}"),
      LatexCommandSignature("\\DeclareNewTOC{}"),
      LatexCommandSignature("\\DeclareNewTOC[]{}"),
      LatexCommandSignature("\\DeclareSIUnit{}{}"),
      LatexCommandSignature("\\DeclareSIUnit[]{}{}"),
      LatexCommandSignature("\\DeclareTOCStyleEntry{}"),
      LatexCommandSignature("\\DeclareTOCStyleEntry[]{}{}"),
      LatexCommandSignature("\\DefineBibliographyExtras{}{}"),
      LatexCommandSignature("\\DefineBibliographyStrings{}{}"),
      LatexCommandSignature("\\DefineHyphenationExceptions{}{}"),
      LatexCommandSignature("\\DisableLigatures{}"),
      LatexCommandSignature("\\GenericWarning{}{}"),
      LatexCommandSignature("\\Gls{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\GlsXtrLoadResources[]"),
      LatexCommandSignature(
        "\\Glspl{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature("\\Iac{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iac[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iac*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iac*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iaca{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iaca[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iaca*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iaca*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacf{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacf[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacf*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacf*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacl{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacl[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacl*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacl*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacs{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacs[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacs*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Iacs*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\KOMAScript", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\KOMAoptions{}"),
      LatexCommandSignature("\\LaTeX", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\NewBibliographyString{}"),
      LatexCommandSignature("\\PackageWarning{}{}"),
      LatexCommandSignature("\\Parencite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Parencite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Parencite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\RedeclareSectionCommand{}"),
      LatexCommandSignature("\\RedeclareSectionCommand[]{}"),
      LatexCommandSignature("\\RedeclareSectionCommands{}"),
      LatexCommandSignature("\\RedeclareSectionCommands[]{}"),
      LatexCommandSignature("\\RequirePackage{}"),
      LatexCommandSignature("\\SetMathAlphabet{}{}{}{}{}{}"),
      LatexCommandSignature("\\Smartcite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Smartcite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Smartcite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\SweaveInput{}"),
      LatexCommandSignature("\\SweaveOpts{}"),
      LatexCommandSignature("\\SweaveSyntax{}"),
      LatexCommandSignature("\\TeX", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Textcite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Textcite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\Textcite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature(
        "\\Textcites{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Textcites{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Textcites{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Textcites{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Textcites()()[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Textcites{}{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Textcites()()[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Textcites()()[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Textcites()()[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\Textcites()()[][]{}[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature("\\UndefineBibliographyExtras{}{}"),
      LatexCommandSignature("\\WarningFilter{}{}"),
      LatexCommandSignature("\\ac{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\ac[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\ac*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\ac*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\aca{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\aca[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\aca*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\aca*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acap{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acap[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acap*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acap*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acf{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acf[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acf*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acf*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acfp{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acfp[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acfp*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acfp*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acl{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acl[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acl*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acl*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\aclp{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\aclp[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\aclp*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\aclp*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acp{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acp[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acp*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acp*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acreset{}"),
      LatexCommandSignature("\\acresetall"),
      LatexCommandSignature("\\acs{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acs[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acs*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acs*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acsetup{}"),
      LatexCommandSignature("\\acsp{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acsp[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acsp*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acsp*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\acuse{}"),
      LatexCommandSignature("\\acuseall"),
      LatexCommandSignature("\\addbibresource{}"),
      LatexCommandSignature("\\addcontentsline{}{}{}"),
      LatexCommandSignature("\\addtocontents{}"),
      LatexCommandSignature("\\addtocounter{}{}"),
      LatexCommandSignature("\\addtokomafont{}{}"),
      LatexCommandSignature("\\addtotheorempostheadhook{}"),
      LatexCommandSignature("\\addxcontentsline{}{}{}"),
      LatexCommandSignature("\\algdef{}[]{}{}"),
      LatexCommandSignature("\\algnewcommand{}{}"),
      LatexCommandSignature("\\algrenewcommand{}{}"),
      LatexCommandSignature("\\ampere", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\arabic{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\arcminute", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\arcsecond", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\astronomicalunit", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\at{}[]", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\autocite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\autocite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\autocite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\autocite*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\autocite*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\autocite*[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature(
        "\\autocites{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\autocites{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\autocites{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\autocites{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\autocites()()[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\autocites{}{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\autocites()()[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\autocites()()[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\autocites()()[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\autocites()()[][]{}[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature("\\automark{}"),
      LatexCommandSignature("\\automark[]{}"),
      LatexCommandSignature("\\automark*{}"),
      LatexCommandSignature("\\automark*[]{}"),
      LatexCommandSignature("\\autopageref{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\autopageref*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\autoref{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\autoref*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\babeltags{}"),
      LatexCommandSignature("\\becquerel", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\bel", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\bibitem{}"),
      LatexCommandSignature("\\bibliography{}"),
      LatexCommandSignature("\\bibliographystyle{}"),
      LatexCommandSignature("\\candela", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\captionof{}"),
      LatexCommandSignature("\\captionsetup{}"),
      LatexCommandSignature("\\captionsetup[]{}"),
      LatexCommandSignature("\\cite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\cite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\cite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\cite*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\cite*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\cite*[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citealp{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citealp[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citealp*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citealp*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citealt{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citealt[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citealt*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citealt*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeauthor{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeauthor[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeauthor[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeauthor*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeauthor*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeauthor*[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citedate{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citedate[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citedate[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citedate*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citedate*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citedate*[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citep{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citep[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citep*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citep*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature(
        "\\cites{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\cites{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\cites{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\cites{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\cites()()[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\cites{}{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\cites()()[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\cites()()[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\cites()()[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\cites()()[][]{}[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature("\\citet{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citet[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citet*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citet*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citetitle{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citetitle[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citetitle[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citetitle*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citetitle*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citetitle*[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeurl{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeurl[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeurl[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeyear{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeyear[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeyear[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeyear*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeyear*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\citeyear*[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\clearfield{}"),
      LatexCommandSignature("\\color{}"),
      LatexCommandSignature("\\color[]{}"),
      LatexCommandSignature("\\colorbox{}"),
      LatexCommandSignature("\\colorlet{}{}"),
      LatexCommandSignature("\\coulomb", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\counterwithin{}{}"),
      LatexCommandSignature("\\counterwithin*{}{}"),
      LatexCommandSignature("\\counterwithout{}{}"),
      LatexCommandSignature("\\counterwithout*{}{}"),
      LatexCommandSignature("\\cref{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\crefname{}{}{}"),
      LatexCommandSignature("\\dalton", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\day", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\decibel", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\declaretheorem{}"),
      LatexCommandSignature("\\declaretheorem[]{}"),
      LatexCommandSignature("\\declaretheoremstyle{}"),
      LatexCommandSignature("\\declaretheoremstyle[]{}"),
      LatexCommandSignature("\\defbibcheck{}{}"),
      LatexCommandSignature("\\defbibenvironment{}{}{}{}"),
      LatexCommandSignature("\\defbibfilter{}{}"),
      LatexCommandSignature("\\defbibheading{}{}"),
      LatexCommandSignature("\\defbibheading{}[]{}"),
      LatexCommandSignature("\\defbibnote{}{}"),
      LatexCommandSignature("\\defcaptionname{}{}{}"),
      LatexCommandSignature("\\defcaptionname*{}{}{}"),
      LatexCommandSignature("\\definecolor[][]"),
      LatexCommandSignature("\\definecolor{}{}{}"),
      LatexCommandSignature("\\definespotcolor{}{}{}"),
      LatexCommandSignature("\\degree", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\degreeCelsius", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\directlua{}"),
      LatexCommandSignature("\\documentclass{}"),
      LatexCommandSignature("\\documentclass[]{}"),
      LatexCommandSignature("\\electronvolt", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\email{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\enlargethispage{}"),
      LatexCommandSignature("\\eqref{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\etocsetlevel{}{}"),
      LatexCommandSignature("\\etocsetnexttocdepth{}"),
      LatexCommandSignature("\\etocsettocstyle{}{}"),
      LatexCommandSignature("\\externalfigure[]", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\farad", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\fcolorbox{}"),
      LatexCommandSignature("\\floatname{}{}"),
      LatexCommandSignature("\\floatstyle{}"),
      LatexCommandSignature("\\footcite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\footcite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\footcite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\footcitetext{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\footcitetext[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\footcitetext[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\footnote{}"),
      LatexCommandSignature("\\footnote[]{}"),
      LatexCommandSignature(
        "\\foreignlanguage{}{}",
        LatexCommandSignature.Action.Dummy,
      ),
      LatexCommandSignature(
        "\\foreignlanguage[]{}{}",
        LatexCommandSignature.Action.Dummy,
      ),
      LatexCommandSignature("\\framed[]"),
      LatexCommandSignature("\\from[]", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\geometry{}"),
      LatexCommandSignature("\\gls{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\glsaddstoragekey{}{}{}"),
      LatexCommandSignature("\\glsentryfull{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\glsentrylong{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\glsentryshort{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\glsentrytext{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\glsfmtshort{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature(
        "\\glspl{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature("\\glssymbol{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\glsxtrnewsymbol{}{}"),
      LatexCommandSignature("\\glsxtrnewsymbol[]{}{}"),
      LatexCommandSignature("\\graphicspath{}"),
      LatexCommandSignature("\\gray", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\hectare", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\henry", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\hertz", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\hour", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\hphantom{}"),
      LatexCommandSignature("\\href{}{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\hyperref[]"),
      LatexCommandSignature("\\hypersetup{}"),
      LatexCommandSignature("\\iac{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iac[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iac*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iac*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iaca{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iaca[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iaca*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iaca*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacf{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacf[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacf*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacf*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacl{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacl[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacl*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacl*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacs{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacs[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacs*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\iacs*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\ifcurrentfield{}"),
      LatexCommandSignature("\\ifentrytype{}"),
      LatexCommandSignature("\\iftoggle{}"),
      LatexCommandSignature("\\import{}{}"),
      LatexCommandSignature("\\import*{}{}"),
      LatexCommandSignature("\\in[]", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\include{}"),
      LatexCommandSignature("\\includegraphics{}"),
      LatexCommandSignature("\\includegraphics[]{}"),
      LatexCommandSignature("\\includepdf{}"),
      LatexCommandSignature("\\includepdf[]{}"),
      LatexCommandSignature("\\index{}"),
      LatexCommandSignature("\\input{}"),
      LatexCommandSignature("\\inputminted{}{}"),
      LatexCommandSignature("\\inputminted[]{}{}"),
      LatexCommandSignature("\\joule", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\katal", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\kelvin", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\kilogram", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\label{}"),
      LatexCommandSignature("\\lettrine{}{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\lettrine[]{}{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\linespread{}"),
      LatexCommandSignature("\\liter", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\litre", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\loadglsentries{}"),
      LatexCommandSignature("\\longnewglossaryentry{}{}"),
      LatexCommandSignature("\\luadirect{}"),
      LatexCommandSignature("\\luaexec{}"),
      LatexCommandSignature("\\lumen", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\lux", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\mdfdefinestyle{}{}"),
      LatexCommandSignature("\\meter", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\metre", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\mint{}{}"),
      LatexCommandSignature("\\mintinline{}{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\minute", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\mole", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\multicolumn{}{}"),
      LatexCommandSignature("\\multirow{}{}"),
      LatexCommandSignature("\\neper", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\newabbreviation{}{}"),
      LatexCommandSignature("\\newabbreviation[]{}{}"),
      LatexCommandSignature("\\newacronym{}{}"),
      LatexCommandSignature("\\newacronym[]{}{}"),
      LatexCommandSignature("\\newboolean{}"),
      LatexCommandSignature("\\newcaptionname{}{}{}"),
      LatexCommandSignature("\\newcaptionname*{}{}{}"),
      LatexCommandSignature("\\newcolumntype{}{}"),
      LatexCommandSignature("\\newcommand{}{}"),
      LatexCommandSignature("\\newcommand{}[]{}"),
      LatexCommandSignature("\\newcommand{}[][]{}"),
      LatexCommandSignature("\\newcommand*{}{}"),
      LatexCommandSignature("\\newcommand*{}[]{}"),
      LatexCommandSignature("\\newcommand*{}[][]{}"),
      LatexCommandSignature("\\newcounter{}"),
      LatexCommandSignature("\\newenvironment{}{}{}"),
      LatexCommandSignature("\\newenvironment{}[]{}{}"),
      LatexCommandSignature("\\newenvironment*{}{}{}"),
      LatexCommandSignature("\\newenvironment*{}[]{}{}"),
      LatexCommandSignature("\\newfloat{}{}{}"),
      LatexCommandSignature("\\newfloat{}{}{}[]"),
      LatexCommandSignature("\\newgeometry{}"),
      LatexCommandSignature("\\newglossary{}{}{}"),
      LatexCommandSignature("\\newglossary[]{}{}{}"),
      LatexCommandSignature("\\newglossary*{}"),
      LatexCommandSignature("\\newglossaryentry{}{}"),
      LatexCommandSignature("\\newglossarystyle{}{}"),
      LatexCommandSignature("\\newrefcontext[]"),
      LatexCommandSignature("\\newtheorem{}{}"),
      LatexCommandSignature("\\newtheorem{}[]{}"),
      LatexCommandSignature("\\newtheorem{}{}[]"),
      LatexCommandSignature("\\newtheorem{}[]{}[]"),
      LatexCommandSignature("\\newtheorem*{}{}"),
      LatexCommandSignature("\\newtoggle{}"),
      LatexCommandSignature("\\newton", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\nolinkurl{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\numberwithin{}{}"),
      LatexCommandSignature("\\ohm", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\pagecolor{}"),
      LatexCommandSignature("\\pagenumbering{}"),
      LatexCommandSignature("\\pageref{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\pageref*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\pagestyle{}"),
      LatexCommandSignature("\\parencite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\parencite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\parencite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\parencite*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\parencite*[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\parencite*[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\pascal", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\pdfbookmark{}{}"),
      LatexCommandSignature("\\pdfbookmark[]{}{}"),
      LatexCommandSignature("\\pgfdeclaredecoration{}{}{}"),
      LatexCommandSignature("\\pgfmathsetmacro{}{}"),
      LatexCommandSignature("\\pgfmathsetseed{}"),
      LatexCommandSignature("\\phantom{}"),
      LatexCommandSignature("\\placefigure[][]"),
      LatexCommandSignature("\\placefigure[]{}"),
      LatexCommandSignature("\\placeformula[]"),
      LatexCommandSignature("\\printacronyms[]"),
      LatexCommandSignature("\\printbibliography[]"),
      LatexCommandSignature("\\printglossary[]"),
      LatexCommandSignature("\\printnoidxglossary[]"),
      LatexCommandSignature("\\printunsrtglossary[]"),
      LatexCommandSignature("\\providecaptionname{}{}{}"),
      LatexCommandSignature("\\providecaptionname*{}{}{}"),
      LatexCommandSignature("\\providecommand{}{}"),
      LatexCommandSignature("\\providecommand{}[]{}"),
      LatexCommandSignature("\\providecommand*{}{}"),
      LatexCommandSignature("\\providecommand*{}[]{}"),
      LatexCommandSignature("\\radian", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\raisebox{}"),
      LatexCommandSignature("\\ref{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\ref*{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\renewbibmacro{}{}"),
      LatexCommandSignature("\\renewbibmacro*{}{}"),
      LatexCommandSignature("\\renewcaptionname{}{}{}"),
      LatexCommandSignature("\\renewcaptionname*{}{}{}"),
      LatexCommandSignature("\\renewcommand{}{}"),
      LatexCommandSignature("\\renewcommand{}[]{}"),
      LatexCommandSignature("\\renewcommand{}[][]{}"),
      LatexCommandSignature("\\renewcommand*{}{}"),
      LatexCommandSignature("\\renewcommand*{}[]{}"),
      LatexCommandSignature("\\renewcommand*{}[][]{}"),
      LatexCommandSignature("\\renewenvironment{}{}{}"),
      LatexCommandSignature("\\renewenvironment{}[]{}{}"),
      LatexCommandSignature("\\renewenvironment*{}{}{}"),
      LatexCommandSignature("\\renewenvironment*{}[]{}{}"),
      LatexCommandSignature("\\renewlist{}{}{}"),
      LatexCommandSignature("\\scalebox{}"),
      LatexCommandSignature("\\second", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\selectlanguage{}"),
      LatexCommandSignature("\\setabbreviationstyle{}"),
      LatexCommandSignature("\\setabbreviationstyle[]{}"),
      LatexCommandSignature("\\setacronymstyle{}"),
      LatexCommandSignature("\\setboolean{}"),
      LatexCommandSignature("\\setcopyright{}"),
      LatexCommandSignature("\\setcounter{}{}"),
      LatexCommandSignature("\\setenumerate{}"),
      LatexCommandSignature("\\setglossarystyle{}"),
      LatexCommandSignature("\\setitemize{}"),
      LatexCommandSignature("\\setkomafont{}{}"),
      LatexCommandSignature("\\setkomavar{}"),
      LatexCommandSignature("\\setkomavar{}[]"),
      LatexCommandSignature("\\setkomavar*{}"),
      LatexCommandSignature("\\setkomavar*{}[]"),
      LatexCommandSignature("\\setlength{}{}"),
      LatexCommandSignature("\\setlist{}"),
      LatexCommandSignature("\\setlist[]{}"),
      LatexCommandSignature("\\setmainfont{}"),
      LatexCommandSignature("\\setmainfont{}[]"),
      LatexCommandSignature("\\setparsizes{}{}{}"),
      LatexCommandSignature("\\setplength{}{}"),
      LatexCommandSignature("\\setstretch{}"),
      LatexCommandSignature("\\setupbodyfont[]"),
      LatexCommandSignature("\\setupcolors[]"),
      LatexCommandSignature("\\setupfooter[]"),
      LatexCommandSignature("\\setupfootertexts[]"),
      LatexCommandSignature("\\setuphead[][]"),
      LatexCommandSignature("\\setupindenting[]"),
      LatexCommandSignature("\\setupinteraction[]"),
      LatexCommandSignature("\\setupitemize[]"),
      LatexCommandSignature("\\setuplayout[]"),
      LatexCommandSignature("\\setuppagenumbering[]"),
      LatexCommandSignature("\\setuppapersize[][]"),
      LatexCommandSignature("\\setuptoc{}{}"),
      LatexCommandSignature("\\setupwhitespace[]"),
      LatexCommandSignature("\\siemens", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\sievert", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\sisetup{}"),
      LatexCommandSignature("\\smartcite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\smartcite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\smartcite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\stepcounter{}"),
      LatexCommandSignature("\\steradian", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\subimport{}{}"),
      LatexCommandSignature("\\subimport*{}{}"),
      LatexCommandSignature("\\supercite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\tesla", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\textcite{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\textcite[]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\textcite[][]{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature(
        "\\textcites{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\textcites{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\textcites{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\textcites{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\textcites()()[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\textcites{}{}{}{}{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\textcites()()[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\textcites()()[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\textcites()()[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature(
        "\\textcites()()[][]{}[][]{}[][]{}[][]{}[][]{}",
        LatexCommandSignature.Action.Dummy,
        DummyGenerator.getInstance(plural = true),
      ),
      LatexCommandSignature("\\textcolor{}"),
      LatexCommandSignature("\\textcolor[]{}"),
      LatexCommandSignature("\\textproc{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\theoremstyle{}"),
      LatexCommandSignature("\\thispagestyle{}"),
      LatexCommandSignature("\\tikz{}"),
      LatexCommandSignature("\\tikzset{}"),
      LatexCommandSignature("\\todo{}"),
      LatexCommandSignature("\\todo[]{}"),
      LatexCommandSignature("\\togglefalse{}"),
      LatexCommandSignature("\\toggletrue{}"),
      LatexCommandSignature("\\tonne", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\unsettoc{}{}"),
      LatexCommandSignature("\\url{}", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\useURL[][][][]"),
      LatexCommandSignature("\\usebibmacro{}"),
      LatexCommandSignature("\\usekomafont{}"),
      LatexCommandSignature("\\usemintedstyle{}"),
      LatexCommandSignature("\\usepackage{}"),
      LatexCommandSignature("\\usepackage[]{}"),
      LatexCommandSignature("\\usetikzlibrary{}"),
      LatexCommandSignature("\\value{}"),
      LatexCommandSignature("\\volt", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\vphantom{}"),
      LatexCommandSignature("\\vspace{}"),
      LatexCommandSignature("\\vspace*{}"),
      LatexCommandSignature("\\watt", LatexCommandSignature.Action.Dummy),
      LatexCommandSignature("\\weber", LatexCommandSignature.Action.Dummy),
    )

    val babelLanguageMap: Map<String, String> = LatexFragmentizer.BABEL_LANGUAGE_MAP

    for (language in babelLanguageMap.keys) {
      val languageTag: String = LatexFragmentizer.convertBabelLanguageToLanguageTag(language)
      list.add(LatexCommandSignature("\\text$languageTag{}", LatexCommandSignature.Action.Dummy))
    }

    list
  }

  val DEFAULT_LATEX_ENVIRONMENT_SIGNATURES: List<LatexEnvironmentSignature> = run {
    val list: MutableList<LatexEnvironmentSignature> = mutableListOf(
      LatexEnvironmentSignature("\\begin{frame}", LatexCommandSignature.Action.Default),
      LatexEnvironmentSignature("\\begin{frame}[]", LatexCommandSignature.Action.Default),
      LatexEnvironmentSignature("lstlisting"),
      LatexEnvironmentSignature("minted"),
      LatexEnvironmentSignature("otherlanguage"),
      LatexEnvironmentSignature("otherlanguage*"),
      LatexEnvironmentSignature("\\starttikzpicture"),
      LatexEnvironmentSignature("textpos"),
      LatexEnvironmentSignature("textpos*"),
      LatexEnvironmentSignature("tikzpicture"),
      LatexEnvironmentSignature("verbatim"),
    )

    val babelLanguageMap: Map<String, String> = LatexFragmentizer.BABEL_LANGUAGE_MAP
    for (language in babelLanguageMap.keys) {
      val languageTag: String = LatexFragmentizer.convertBabelLanguageToLanguageTag(language)
      list.add(LatexEnvironmentSignature(language))
      if (languageTag.length != language.length) list.add(LatexEnvironmentSignature(languageTag))
    }

    list
  }
}
